package org.example.designPattern.prototypePattern6;

import java.util.ArrayList;

/*
    原型设计模式简单来说就是克隆
    原型表明了有一个样板实例，这个原型是可定制的。原型模式多用于创建复杂的或者构造耗时的实
    例，因为这种情况下，复制一个已经存在的实例可使程序运行更高效
 */
public class Client {
    public static void main(String[] args) {
        //创建User原型对象
        User user = new User();
        user.setName("李三");
        user.setPassword("123456");
        ArrayList<String> phones = new ArrayList<>();
        phones.add("17674553302");
        user.setPhones(phones);
        //copy一个user对象,并且对象的属性
        User user2 = user.clone();
        System.out.println(user2);
        user2.setPassword("654321");
        //查看俩个对象是否是一个
        System.out.println(user == user2);
        //查看属性内容
        System.out.println(user.getName() + " | " + user2.getName());
        System.out.println(user.getPassword() + " | " + user2.getPassword());
        //查看对于引用类型拷贝
        System.out.println(user.getPhones() == user2.getPhones());
    }
}